home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Pascal Super Library
/
Pascal Super Library (CW International)(1997).bin
/
LIBRARY
/
PRUS101
/
FDATE.DOK
< prev
next >
Wrap
Text File
|
1995-01-11
|
23KB
|
527 lines
/////////////////////\\\\\\\\\\\\\\\\\\\\\\\
Dokumentation zur FIDO Unit FDATE
\\\\\\\\\\\\\\\\\\\\\///////////////////////
RELEASE 1.03
^^^^^^^^^^^^
=========================================================================
Autor: Peter Holschbach, 2:2450/660.3 @ FidoNet, Remscheid, 20.06.1994
=========================================================================
1. Date :
-----------
Die Unit FDATE.PAS stellt Funktionen und Prozeduren zur Verfügung,
die sich mit der Uhrzeit und dem Datum befassen.
Dies ist eine Low Level Unit. Sie benötigt keinerlei Routinen
anderer Units, mit Ausnahme der in Turbo Pascals (6.0 oder
höher) Unit-Library TURBO.TPL enhaltenen Standard-Units.
2. Kurzbeschreibung:
--------------------
CDaysOfMonth ......... enthält in zwei Feldern, die Anzahl der
Tage für einen Monat für ein normales
und ein Schaltjahr.
CDayOfWeekAmerican ... enthält die englischen Namen der Wochen-
tage, abgekürzt mit drei Zeichen.
CDayOfWeekGerman ..... enthält die deutschen Namen der Wochen-
tage, abgekürzt mit drei Zeichen.
CMonthAmerican ....... enthält die englischen Namen der Monate
abgekürzt auf drei Zeichen.
CMonthGerman ......... enthält die deutschen Namen der Monate
abgekürzt auf drei Zeichen.
DateFormat ........... typisierte Konstante. Dient zur länder-
speziefischen Anpassung des Erscheinungs-
bildes des Datums.
DateSeperator ........ typisierte Konstante. Das angegbene Zeichen
wird als Trennzeichen, bei der Umwandlung
eines Datums in eine Zeichenkette,
verwendet.
DayDiff .............. berechnet die Anzahl von Tagen, zwischen
zwei Daten.
DayNumber ............ berechnet die Tage die seit dem 01.01.0000
bis zu einem angegbenen Datum vergangen
sind.
DayOfWeek ............ gibt den Wochentag zurück. Der Wert kann
direkt als "Zeiger" in CDayOfWeekXXX
verwendet werden.
DayOfYear ............ berechnet den Tag für das übergebene Datum.
GetCurrentDateString . liefert das aktuelle Datum als Zeichenkette
zurück. Die typisierten Konstanten
"DateSeperator" und "DateFormat" werden von
der Funktion zur Formatierung herangezogen.
GetDate .............. Ersatz der Funktion aus der Unit DOS.
Liefert das aktuelle Datum.
GetDateString ........ liefert ein übergebenes Datum als Zeichen-
kette zurück (siehe GetCurrentDateString)
GetCurrentTimeString . liefert die aktuelle Uhrzeit als Zeichen-
kette zurück. Alle Zahlen werden zweistellig
mit führender Null ausgegeben. Das Trenn-
zeichen zwischen den Zahlen wird durch die
typisierte Konstante "TimeSeperator"
bestimmt.
GetTime .............. Ersatz der Funktion aus der Unit DOS.
Liefert die aktuelle Uhrzeit.
GetTimeString ........ liefert eine übergebene Uhrzeit als Zeichen-
kette zurück. Siehe (GetCurrentTimeString)
GetUnixTime .......... liefert die Unix typische Zeit als Sekunden
seit dem 01.01.1970
IsLeapYear ........... prüft ob das angegeben Jahr ein Schaltjahr
ist.
TimeSeperator ........ typisierte Konstante. Das angegbene Zeichen
wird als Trennzeichen, bei der Umwandlung einer
Uhrzeit in eine Zeichenkette, verwendet.
ValidDate ........... prüft ein Datum auf sinnvolle Werte.
WeekOfYear ........... berechnet die Kalenderwoche für das aktuelle
Datum. Wie im richtigen Leben wird alles vor
dem ersten Montag des Jahres der letzten
Kalenderwoche des Vorjahres zugeschlagen.
3. Detaillierte Beschreibung:
-----------------------------
===============================================================
DayDiff
---------------------------------------------------------------
ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
ERSTDATUM ... 28.06.1994 LETZTE ÄNDERUNG ...
MODIFIKATION ...
---------------------------------------------------------------
BESCHREIBUNG ... bestimmt die Anzahl von Tagen, die
zwischen zwei Daten liegen.
DEKLARATION ... DayDiff (FYear,FMonth,FDay,
TYear,TMonth,TDay : Word) : LongInt;
PARAMETER ... FYear - von Jahr (mit Jahrtausend)
FMonth - von Monat
FDay - von Tag
TYear - bis Jahr (mit Jahrtausend)
TMonth - bis Monat
TDay - bis Tag
ERGEBNIS ... eine Variable des Typs LONGINT, die
der Anzahl von Tagen entspricht.
===============================================================
DayNumber
---------------------------------------------------------------
ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
ERSTDATUM ... 28.06.1994 LETZTE ÄNDERUNG ... 17.10.1994
MODIFIKATION ... casting auf LONGINT fehlte
---------------------------------------------------------------
BESCHREIBUNG ... bestimmt die Anzahl von Tagen, die
seit dem 01.01.0000 bis zum angegebenen
Datum vergangen sind.
DEKLARATION ... DayNumber (Year,Month,Day : Word):LongInt;
PARAMETER ... Year - Jahr (mit Jahrtausend)
Month - Monat
Day - Tag
ERGEBNIS ... eine Variable des Typs LONGINT, die
der Anzahl von Tagen entspricht.
===============================================================
DayOfWeek
---------------------------------------------------------------
ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
ERSTDATUM ... 28.06.1994 LETZTE ÄNDERUNG ... 17.10.1994
MODIFIKATION ... zurückgegebene Zahl war falsch
---------------------------------------------------------------
BESCHREIBUNG ... bestimmt den Wochentag des angegebenen Datums.
DEKLARATION ... DayOfWeek (Year,Month,Day : Word):Byte;
PARAMETER ... Year - Jahr (mit Jahrtausend)
Month - Monat
Day - Tag
ERGEBNIS ... eine Variable des Typs BYTE, die als
"Zeiger" in das Feld CDayOfWeekXXX verwendet
werden kann. Die Tage werden von Montag = 1
bis Sonntag = 7 durchnummeriert.
===============================================================
DayOfYear
---------------------------------------------------------------
ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
ERSTDATUM ... 28.06.1994 LETZTE ÄNDERUNG ... 28.06.1994
MODIFIKATION ...
---------------------------------------------------------------
BESCHREIBUNG ... berechnet die Anzahl der Tage vom 1.1 bis zum
übergebenen Datum des Jahres.
DEKLARATION ... Function DayOfYear (Year,Month,Day : Word):Word;
PARAMETER ... Year - Jahr (mit Jahrtausend)
Month - Monat
Day - Tag
ERGEBNIS ... eine Variable des Typs WORD, die die Nummer
des Tages enthält.
===============================================================
GetCurrentDateString
---------------------------------------------------------------
ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
ERSTDATUM ... 26.06.1994 LETZTE ÄNDERUNG ... 26.06.1994
MODIFIKATION ...
---------------------------------------------------------------
BESCHREIBUNG ... ermittelt das aktuelle Datum und wandelt es
in eine Zeichenkette um. Das Aussehen der
Zeichenkette wird durch die typisierte Konstante
DateFormat bestimmt. Das Zeichen der typisierten
Konstante DateSeperator wird zum Trennen der
einzelnen Einträge verwendet.
DEKLARATION ... Function GetCurrentDateString : String;
PARAMETER ... keine
ERGEBNIS ... eine Variable des Typs STRING, die das Datum
enthält. Die Zeichenkette hat folgenden Aufbau:
DateFormat = European
'DD.MM.YY'
DateFormat = American
'MM.DD.YY'
DateFormat = Japanese
'YY.MM.DD'
führende Leerzeichen werden durch Nullen ersetzt.
===============================================================
GetDate
---------------------------------------------------------------
ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
ERSTDATUM ... 07.07.1994 LETZTE ÄNDERUNG ... 07.07.1994
MODIFIKATION ...
---------------------------------------------------------------
BESCHREIBUNG ... ermittelt das aktuelle Datum.
DEKLARATION ... Procedure GetDate (Var Year,Month,Day,DayOfWeek
: Word);
PARAMETER ... Year - Jahr
Month - Monat
Day - Tag
DayOfWeek - Wochentag
ERGEBNIS ... wie die entsprechende Prozedur der Unit DOS
===============================================================
GetDateString
---------------------------------------------------------------
ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
ERSTDATUM ... 26.06.1994 LETZTE ÄNDERUNG ... 26.06.1994
MODIFIKATION ...
---------------------------------------------------------------
BESCHREIBUNG ... wandelt das übergebene Datum in eine
Zeichenkette.
(siehe GetCurrentDateString)
DEKLARATION ... function GetDateString (Year,Month,Day : Word)
: String;
PARAMETER ... Year - Jahr (mit oder ohne Jahrtausend)
Month - Monat
Day - Tag
ERGEBNIS ... (siehe GetCurrentDateString)
===============================================================
GetCurrentTimeString
---------------------------------------------------------------
ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
ERSTDATUM ... 26.06.1994 LETZTE ÄNDERUNG ... 26.06.1994
MODIFIKATION ...
---------------------------------------------------------------
BESCHREIBUNG ... bestimmt die aktuelle Uhrzeit und gibt sie
als Zeichenkette zurück. Als Trennzeichen
wird das Zeichen der typisierten Konstanten
TimeSeperator verwendet.
DEKLARATION ... function GetCurrentTimeString : String;
PARAMETER ... keine
ERGEBNIS ... eine Variable des Typs STRING, die die Uhr-
zeit enthält. Die Zeichenkette ist wie folgt
aufgebaut:
'hh:mm:ss'
führende Leerzeichen werden durch eine Null
ersetzt.
===============================================================
GetTime
---------------------------------------------------------------
ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
ERSTDATUM ... 07.07.1994 LETZTE ÄNDERUNG ... 07.07.1994
MODIFIKATION ...
---------------------------------------------------------------
BESCHREIBUNG ... liefert die aktuelle Uhrzeit
DEKLARATION ... Procedure GetTime (Var hour,minute,second,
Sec100:Word);
PARAMETER ... hour - Stunde
minute - Minute
second - Sekunde
Sec100 - 1/100 Sekunden
ERGEBNIS ... wie die entsprechende Prozedur der Unit DOS
===============================================================
GetTimeString
---------------------------------------------------------------
ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
ERSTDATUM ... 26.06.1994 LETZTE ÄNDERUNG ... 26.06.1994
MODIFIKATION ...
---------------------------------------------------------------
BESCHREIBUNG ... liefert die übergebene Uhrzeit als Zeichen-
kette zurück.
DEKLARATION ... function GetTimeString (hour,minute,second:Word)
: String;
PARAMETER ... hour - Stunde
minute - Minute
second - Sekunde
ERGEBNIS ... siehe GetCurrentTimeString
===============================================================
GetUnixTime
---------------------------------------------------------------
ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
ERSTDATUM ... 24.08.1994 LETZTE ÄNDERUNG ...
MODIFIKATION ...
---------------------------------------------------------------
BESCHREIBUNG ... liefert das übergebene Datum und die
übergebene Uhrzeit im Unix typischen
Format (als Sekunden seit dem 1.1.1970)
zurück.
DEKLARATION ... GetUnixTime(Year,Month,Day,Hour,
Minute,Second : Word) : LongInt;
PARAMETER ... Year - das Jahr (mit Jahrtausend !)
Month - der Monat
Day - der Tag
Hour - die Stunde
Minute - die Minute
Second - die Sekunde
ERGEBNIS ... LongInt im Unix-Format
===============================================================
IsLeapYear
---------------------------------------------------------------
ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
ERSTDATUM ... 26.06.1994 LETZTE ÄNDERUNG ... 26.06.1994
MODIFIKATION ...
---------------------------------------------------------------
BESCHREIBUNG ... prüft ob das angegebene Jahr ein Schaltjahr
ist.
DEKLARATION ... function IsLeapYear (Year : Word): Boolean;
PARAMETER ... Year - das Jahr (mit Jahrtausend !)
ERGEBNIS ... TRUE - wenn es ein Schaltjahr ist
===============================================================
ValidDate
---------------------------------------------------------------
ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
ERSTDATUM ... 17.10.1994 LETZTE ÄNDERUNG ...
MODIFIKATION ...
---------------------------------------------------------------
BESCHREIBUNG ... prüft ob das übergeben Datum sinnvolle
Daten enthält. Alle Rückgabewerte ungleich
0 zeigen einen Fehler an.
Zuerst wird geprüft ob der Monat im Bereich
[1..12] liegt, und dann ob der Tag im Bereich
[1..Tage des Monats] liegt.
DEKLARATION ... function ValidDate (Year,Month,Day : Word):Byte;
PARAMETER ... Year - Jahr mit Jahrtausend
Month - Monat
Day - Tag
ERGEBNIS ... 0 = alles OK
2 = Fehler bei der Angabe des Monats
3 = Fehler bei der Angabe des Tages
===============================================================
WeekOfYear
---------------------------------------------------------------
ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
ERSTDATUM ... 26.06.1994 LETZTE ÄNDERUNG ... 17.10.1994
MODIFIKATION ... Algorithmus war falsch
---------------------------------------------------------------
BESCHREIBUNG ... bestimmt die Kalenderwoche für das übergeben
Datum. ACHTUNG ! Die erste Kalenderwoche
beginnt am ersten Montag des Jahres.
DEKLARATION ... function WeekOfYear (Year,Month,Day : Word):Byte;
PARAMETER ... Year - Jahr mit Jahrtausend
Month - Monat
Day - Tag
ERGEBNIS ... die Kalenderwoche (1..52)
4. Beispiele:
-------------
===============================================================
DayOfWeek
---------------------------------------------------------------
Writeln (DayOfWeek (1994,3,7)); { ergibt: 1 }
Writeln (CDayOfWeekGerman[DayOfWeek (1994,7,3)]);{ ergibt: 'Son'}
===============================================================
DayOfYear
---------------------------------------------------------------
Writeln (DayOfYear (1994,7,3)); {ergibt: 184}
===============================================================
GetCurrentDateString
---------------------------------------------------------------
Writeln (GetCurrentDateString); {ergibt: '03.07.94'}
DateFormat := American;
Writeln (GetCurrentDateString); {ergibt: '07.03.94'}
DateFormat := European;
DateSeperator := '/';
Writeln (GetCurrentDateString); {ergibt: '03/07/94'}
===============================================================
GetDateString
---------------------------------------------------------------
Writeln (GetDateString (94,7,3)); {ergibt: '03.07.94'}
( siehe auch GetCurrentDateString )
===============================================================
GetCurrentTimeString
---------------------------------------------------------------
Writeln (GetCurrentTimeString); {ergibt: '00:05:13'}
TimeSeperator := '.';
Writeln (GetCurrentTimeString); {ergibt: '00.05.13'}
===============================================================
GetTimeString
---------------------------------------------------------------
Writeln (GetTimeString (8,59,59)); {ergibt: '08:59:59'}
(siehe auch GetCurrentTimeString )
===============================================================
GetUnixTime
---------------------------------------------------------------
Writeln (GetUnixTime (1970,1,1,0,0,1)); {Ergebnis: 1}
===============================================================
IsLeapYear
---------------------------------------------------------------
Writeln (IsLeapYear (1994)); {ergibt: FALSE }
===============================================================
WeekOfYear
---------------------------------------------------------------
Writeln (WeekOfYear (1994,7,3)); {ergibt: 26}
---------------------------------------------------------------
5. History:
-----------
Neuerungen nach Release ...
---------------------------
... 1.01 - DayDiff Anzahl der Tage zwischen zwei
Daten.
- GetDate | Ersatz der Prozeduren aus der
- GetTime | Unit DOS
- DayNumber Tage seit dem 01.01.0000
- CDayOfWeekAmerican war CDayOfWeekAme
CDayOfWeekGerman war CDayOfWeekGer
... 1.02 - Kosmetische Änderungen:
- CDayOfWeekGerman war ein Array of String [10]
- in DayNumber war ein casting mit longint
notwendig damit keine Bereichsüberschreitung
erkannt wird
- Bugs:
- DayOfWeek lieferte den falschen Wert zurück
- WeekOfYear falscher Algorithmus
- Neu:
- Funktion ValidDate
- Funktion GetUnixTime
... 1.03 - Neu:
- Konstanten: CMonthAmerican und CMonthGerman
==========================================================================
/////////////////////\\\\\\\\\\\\\\\\\\\\\\\
Ende der Dokumentation zur FIDO Unit FDATE
\\\\\\\\\\\\\\\\\\\\\///////////////////////